package com.msmall.community.score.service;

import com.msmall.base.service.BaseManager;
import com.msmall.community.score.model.Score;

public interface ScoreManager extends BaseManager<Score, Long>{

	/**
	 * 给用户添加多少分 +加分 -减分
	 * @param userid
	 * @param score
	 */
	public void addScore(Long userid, int score);
	
	// TODO 新增加的积分存入银行. 不在线用户。 true立刻刷新数据库  +加分 -减分
	public void addScore(Long userid, int score, boolean flush);
	
	/**
	 * 给用户添加积分  true立刻刷新数据库
	 * @param userid
	 * @param key 积分规则的英文名称
	 */
	public void addScore(Long userid, String key, boolean flush);

	/**
	 * 增加用户的积分  true立刻刷新数据库
	 * @param userid  为发帖人用户名
	 */
	public void addTopic (Long userid, boolean flush);
	/**
	 * 	减少积分.  true立刻刷新数据库
	 * @param userid 为发帖人用户名
	 */
	public void reduceTopic (Long userid, boolean flush);
	
	/**
	 * 增加回复人积  true立刻刷新数据库
	 * @param userid 回复发表人用户名 
	 */
	public void addThread(Long userid, boolean flush);
	/**
	 * 减少回复贴的积分.   true立刻刷新数据库
	 * @param userid 为回复发表人用户名
	 */
	public void reduceThread (Long userid, boolean flush);

	/**
	 * 当帖子被设置精华时增加积分  true立刻刷新数据库
	 * @param userid
	 */
	public void addTopicElite(Long userid, boolean flush);
	
	public void addRegister(Long userid, boolean flush); //注册  true立刻刷新数据库
	public void addNormalLogin(Long userid, boolean flush);//普通用户每日登录  true立刻刷新数据库
	public void addVipLogin(Long userid, boolean flush); //高级用户每日登录  true立刻刷新数据库
	public void addRosterRegister(Long userid, boolean flush); // 邀请好友注册成功  true立刻刷新数据库
	
	public void addDiary(Long userid, boolean flush); //写日记  true立刻刷新数据库
	public void addCopyDiary(Long userid, boolean flush); // 被转帖  true立刻刷新数据库
	public void reduceDiary(Long userid, boolean flush); // 管理员删除日记，自己删除不影响  true立刻刷新数据库
	public void addFavoriteDiary(Long userid, boolean flush); // 被用户加入收藏  true立刻刷新数据库
	public void addEliteDiary(Long userid, boolean flush); // 官方评为精华
	
	public void addPhoto(Long userid, boolean flush); // 上传一张照片  true立刻刷新数据库
	public void reducePhoto(Long userid, boolean flush); // 管理员删除
	public void addFavoritePhoto(Long userid, boolean flush); // 被其他用户加入收藏
	public void addElitePhoto(Long userid, boolean flush); // 官方优秀
	
	public void addCopy(Long userid, boolean flush); // 用户每次转贴将会获得积分  true立刻刷新数据库
	public void reduceCopy(Long userid, boolean flush); // 由于违规转贴被删除，将扣除积分
	public void addCopyCopy(Long userid, boolean flush); // 转贴被好友收藏或转走获得积分
	public void addEliteCopy(Long userid, boolean flush); // 官方优秀
}
